package com.ctibook.booksystem.service.bookcatalog;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.cti.ftpservice.vo.PageViewVO;
import com.ctibook.booksystem.model.bookcatalog.BookInfo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoCategoryVos;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoDetailsVO;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoPropertyLoadVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoPublisherVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoSearchNormalVO;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoStatisticsTJVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoUpdateVo;
/**
 * @author 鲁永刚 E-mail: luyg@ctibook.com
 * @version 创建时间：Sep 12, 2014 10:16:30 AM 类说明
 */
public interface BookInfoService {
	
	
	/**
	 * 添加或更新书目信息:同步
	 * 
	 * @param vo
	 */
	public void addOrUpdateBookInfoSync(BookInfoDetailsVO vo,boolean checkedIsbn);

	/**
	 * 添加或更新书目信息:异步
	 * 
	 * @param vo
	 */
	public void addOrUpdateBookInfoAsync(BookInfoDetailsVO vo);
		

	/**
	 * 重新构建索引
	 */
	public void rebuildIndex();
	
	public void rebuildIndexBookInfoExtral();
	
	public PageViewVO<BookInfoDetailsVO> fullTextSearchByNormalSearchVO(BookInfoSearchNormalVO vo, int pageIndex,
			int pageSize, BookInfoPropertyLoadVo bookInfoPropertyLoadVo);
	
	public void addOrUpdatePublisher(String publisher,String alis);
	
	public void addOrUpdateCategory1AndCategory(String category1,String category2);

	public List<BookInfoCategoryVos> getAllBookInfoCategoryVos();
	
	public List<BookInfoPublisherVo> getAllBookInfoPublisherVos();
	
	public void updateBookInfoIsBlackBookByIsbns(String[] isbns,boolean isBlackBook);
	
	public String updateBookInfoPriceAndCurrency(BookInfoUpdateVo[] updateVos);
	
	public void deleteBookInfoByIsbns(String[] isbns);
	 
	public  List<BookInfoStatisticsTJVo> getBookInfoStatisticsVosByBookInfoSearchNormalVO(BookInfoSearchNormalVO bookInfoSearchNormalVO);
	
}
